package com.linkit.main;

import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;

import com.linkit.main.widget.ExtendedTextView;
import com.linkit.utils.ScreenUtils;
import com.linkit.utils.Utils;

/**
 * Hiển thị dialog bao gồm header và nội dung
 * 
 */
public class DialogLayout{
	
	public static final int INVALIDE_RESOURCE_ID = -1;
	public static final int TIME_TRANSLATE_DELAY = 150;
	
	public ExtendedTextView name;
	public RelativeLayout layout;
	public LinearLayout contentLayout;
	public Context context;
	
	public DialogLayout(Context _context, RelativeLayout _layout){
		context = _context;
		layout = _layout;
	}
	/**
	 * Khởi tạo các tham số
	 * @param main
	 */
	public void initParams(){
		RelativeLayout.inflate(context, R.layout.dialog_layout, layout);

		name = (ExtendedTextView) layout.findViewById(R.id.dialog_title_tv);
		name.setTextSize(ScreenUtils.getDialogHeaderFontSize());
		
		contentLayout = (LinearLayout)layout.findViewById(R.id.dialog_content_container);
	}
	
	/**
	 * Thiết lập lại giá trị của tên header
	 * @param resId: resId của chuỗi
	 */
	public void setHeaderTitle(String title){
		name.setText(title);
	}
	
	/**
	 * Hiện thị icon trên thanh tiêu đề của dialog
	 * @param iconResId: id của ảnh
	 */
	public void setIconHeader(int iconResId){
		ImageView icon = (ImageView) layout.findViewById(R.id.dialog_icon_tv);
		if(icon == null){
			return;
		}
		if(iconResId != INVALIDE_RESOURCE_ID){
			icon.setBackgroundResource(iconResId);
			icon.setVisibility(View.VISIBLE);
			name.setGravity(Gravity.LEFT);
		}else{
			icon.setVisibility(View.GONE);
			name.setGravity(Gravity.CENTER);
		}
	}
	
	/**
	 * Thêm view vào nội dung của dialog
	 * @param resId: id của layout
	 */
	public void addContentFrame(View view){
		contentLayout.removeAllViews();
		contentLayout.addView(view);
	}
	
	/**
	 * Đưa view mới vào trong dialog và hiển thị nó lên màn hình
	 * @param title: Tiêu đề của dialog
	 * @param v: view nội dung của dialog
	 * @param isShowIcon: cho hiện icon trên tiêu đề không
	 */
	
	public void showDialog(View v) {
		
		layout.removeAllViews();
		initParams();
		layout.setBackgroundColor(Utils.getColor(R.color.dialog_bkg));
		addContentFrame(v);
		
		int width = (int) (ScreenUtils.getScreenWidth() * ScreenUtils.WIDTH_DIALOG);
		RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, LayoutParams.WRAP_CONTENT);
		layout.setLayoutParams(layoutParams);
		GeneralAnimationUtils.startShowDialog(layout);
	}
	
	public void setOnTouchListener(OnTouchListener onListener){
		layout.setOnTouchListener(onListener);
	}
}
